package com.xmut.mall.product.vo;

import com.xmut.mall.product.myenum.MemberCouponStatusEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class MemberCouponEntityVo {
    private Long id;
    /**
     * 使用起始时间
     */
    private Date startTime;
    /**
     * 使用截止时间
     */
    private Date endTime;
    /**
     * 消费门槛
     */
    private BigDecimal consumeThreshold;
    /**
     * 核销时间
     */
    private Date consumptionTime;
    /**
     * 优惠券ID
     */
    private Long couponId;
    /**
     * 活动类型
     */
    private String couponType;
    /**
     * 折扣
     */
    private BigDecimal discount;
    /**
     * 优惠券类型
     */
    private String getType;
    /**
     * 是否是平台优惠券
     */
    private Boolean platformFlag;
    /**
     * 会员优惠券状态
     */
    private String memberCouponStatus;
    /**
     * 会员ID
     */
    private Long memberId;
    /**
     * 会员名称
     */
    private String memberName;
    /**
     * 面额
     */
    private BigDecimal price;
    /**
     * 范围关联的ID
     */
    private String scopeId;
    /**
     * 关联范围类型
     */
    private String scopeType;
    /**
     * 店铺承担比例
     */
    private BigDecimal storeCommission;
    /**
     * 店铺ID
     */
    private Long storeId;
    /**
     * 店铺名称
     */
    private String storeName;
    /**
     * 创建时间
     */
    private Date createTime;

    public String getMemberCouponStatus(){
        if (endTime == null) {
            return startTime != null ? MemberCouponStatusEnum.CLOSED.name() : MemberCouponStatusEnum.EXPIRE.name();
        }
        Date now = new Date();
        if (now.before(startTime)) {
            return MemberCouponStatusEnum.NEW.name();
        } else if (endTime.before(now)) {
            return MemberCouponStatusEnum.EXPIRE.name();
        } else if (now.before(endTime)) {
            return MemberCouponStatusEnum.NEW.name();
        }
        return MemberCouponStatusEnum.CLOSED.name();
    }
}
